<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>文章列表</title>
    <link rel="stylesheet" href="./libs/bootstrap/css/bootstrap.min.css" />
    <link rel="stylesheet" href="css/reset.css" />
    <link rel="stylesheet" href="css/iconfont.css" />
    <link rel="stylesheet" href="css/main.css" />
    <!-- jq -->
    <script src="./libs/jquery-1.12.4.min.js"></script>
    <!-- 模板引擎 -->
    <script src="./libs/template-web.js"></script>
    <!-- 导入日期插件 -->
    <script src="./libs/jedate/js/jedate.js"></script>
    <link rel="stylesheet" href="./libs/jedate/css/jeDate-test.css" />
    <link rel="stylesheet" href="./libs/jedate/css/jedate.css" />

    <!-- 导入富文本插件 -->
    <script src="./libs/wangEditor/wangEditor.min.js"></script>
  </head>

  <body>
    <div class="container-fluid">
      <div class="common_title">文章编辑</div>
      <div class="container-fluid common_con">
        <form class="form-horizontal article_form" id="form">
          <div class="form-group">
            <label for="inputTitle" class="col-sm-2 control-label">文章标题：</label>
            <div class="col-sm-10">
              <input type="text" name="title" class="form-control title" id="inputTitle" value="文章标题文字" />
            </div>
          </div>
          <div class="form-group">
            <label for="inputCover" class="col-sm-2 control-label">文章封面：</label>
            <div class="col-sm-10">
              <img src="images/pic06.jpg" class="article_cover" />
              <input name="cover" type="file" id="inputCover" />
            </div>
          </div>
          <div class="form-group">
            <label for="inputCategory" class="col-sm-2 control-label">文章类别：</label>
            <div class="col-sm-4">
              <select class="form-control category" name="categoryId">
                <option>类别一</option>
                <option>类别二</option>
                <option>类别三</option>
                <option selected>类别四</option>
                <option>类别五</option>
              </select>
            </div>
          </div>
          <div class="form-group">
            <label class="col-sm-2 control-label">发布时间：</label>
            <div class="col-sm-4">
              <!-- 时间插件容器 -->
              <div class="jeinpbox">
                <input type="text" name="date" class="jeinput" id="testico" placeholder="YYYY-MM-DD" />
                <div class="icons jebtns"></div>
              </div>
            </div>
          </div>
          <div class="form-group">
            <label for="inputEmail3" class="col-sm-2 control-label">文章内容：</label>
            <div class="col-sm-10">
              <!-- 富文本插件容器 -->
              <div id="editor">
                <p>欢迎使用 <b>wangEditor</b> 富文本编辑器</p>
              </div>
            </div>
          </div>
          <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
              <button type="submit" class="btn btn-success btn-edit">修改</button>
              <button type="submit" class="btn btn-default btn-draft">存为草稿</button>
            </div>
          </div>
        </form>
      </div>
    </div>
  </body>
</html>
<script src="./libs/https.js"></script>
<!-- 准备文章类别模板 -->
<script type="text/html" id="tpl-list">
  {{each}}
  <option value="{{$value.id}}">{{$value.name}}</option>
  {{/each}}
</script>
<script>
  $(function () {
    // 1. 设置封面预览功能
    $('#inputCover').on('change', function (e) {
      // 2. 获得图片文件,将文件转换成路径,将路径赋值给img
      $('.article_cover').attr('src', URL.createObjectURL(this.files[0]))
    })

    // 3. 获得文章类别,加载结构
    $.ajax({
      type: 'get',
      url: BigNew.category_list,
      success: function (backData) {
        // console.log(backData);
        if (backData.code == 200) {
          let categoryData = backData.data
          // 4. 结合模板引擎,生成页面结构
          let htmlStr = template('tpl-list', categoryData)
          $('.category').html(htmlStr)
        }
      },
    })

    // 5. 加载日期插件
    $('.jebtns').on('click', function () {
      jeDate('#testico', {
        trigger: false,
        format: 'YYYY-MM-DD',
        zIndex: 20000,
      })
    })

    // 6. 加载富文本编辑器
    const E = window.wangEditor
    const editor = new E('#editor')
    editor.create()

    // 7. 获得编辑按钮传递的文章id
    let dataid = window.location.search.split('=')[1];

    // 8. 根据文章id获得指定的文章数据,加载页面结构
    $.ajax({
      type: 'get',
      url: BigNew.article_search,
      data: {
        id: dataid
      },
      success: function(backData) {
        // console.log(backData);
        if (backData.code == 200) {
          // 9. 将内容渲染到指定结构
          $('#inputTitle').val(backData.data.title);
          $('.article_cover').attr('src', backData.data.cover);
          $('.category').val(backData.data.categoryId);
          $('.jeinput').val(backData.data.date);
          // 利用富文本插件的方法设置内容
          editor.txt.text(backData.data.content);
        }
      }
    })
  
    // 10. 给修改按钮设置点击事件
    $('.btn-edit, .btn-draft').on('click', function (e) {
      e.preventDefault();

      // 11. 区分按钮的目的
      let state = '';
      if ($(this).text() == '修改') {
        state = '已发布';
      } else {
        state = '草稿';
      }

      // 12. 获得修改后的文章内容
      let fd = new FormData(document.querySelector('form'));// title cover date categoryId(数字)
      // 手动添加id,state,content
      fd.append('id', dataid);
      fd.append('state', state);
      fd.append('content', editor.txt.text());

      // 13. 发起ajax请求,修改文章信息
      $.ajax({
        type: 'post',
        url: BigNew.article_edit,
        data: fd,
        contentType: false,
        processData: false,
        success: function(backData) {
          // console.log(backData);
          if(backData.code == 200){
             alert('当前操作成功');
             window.location = './article_list.html';
          }
        }
      })
    })
  })
</script>
